package com.zjun.core.serviceId;

import com.zjun.core.IdGenerator;
import com.zjun.core.snowflake.SnowflakeInfo;

public interface ServiceIdGenerator extends IdGenerator {

    /**
     * 根据serviceId生成雪花ID算法
     * @param serviceId
     * @return
     */
    default long nextId(long serviceId) {
        return 0L;
    }
    /**
     * 根据 {@param serviceId} 生成雪花算法 ID
     */
    default long nextId(String serviceId) {
        return 0L;
    }
    /**
     * 根据 {@param serviceId} 生成字符串类型雪花算法 ID
     */
    default String nextIdStr(long serviceId) {
        return null;
    }
    /**
     * 根据 {@param serviceId} 生成字符串类型雪花算法 ID
     */
    default String nextIdStr(String serviceId) {
        return null;
    }
    /**
     * 解析雪花算法
     */
    SnowflakeInfo parseSnowflakeId(long snowflakeId);
}
